package org.etsi.ttcn.tci;

public interface RecordValue extends Value {

/**
 *  Returns the value of the field named fieldName. The return value is the common abstract base type Value,
 *  as a record field can have any type defined in TTCN-3. In case the field can not be obtained from the
 *  record the distinct value null will be returned.
 */
    public Value getField(String fieldName) ;

/**
 *  Set the field named fieldName of the record to value. No assumption shall be made on how a field is stored
 *  in a record. An internal implementation might choose to store a reference to this value or to copy the value.
 *  It is save to assume that the value will be copied. Therefore it should be relied on that subsequent
 *  modifications of value will not be considered in the record.
 */
    public void  setField(String fieldName, Value value) ;

/**
 *  Returns an array of String of field names, the distinct value null, if the record has no fields.
 */
    public String[] getFieldNames() ;

} // RecordValue
